perm filename TEN.2[DOC,TOB] blob
sn#086260 filedate 1974-02-04 generic text, type T, neo UTF8
00100 TEN YEAR PROJECT REPORT
00200
00300 VISION HARDWARE
00400 flying spot
00500 tv camera interface
00600 image dissector
00700 instrument tv, pan/tilt/color/focus/turret/target
00800 laser
00900 second camera
01000
01100 VISION SYSTEMS
01200 edge follower
01300 edge operator
01400 accomodation
01500 calibration
01600 simple/complex
01700 visual feedback, corner finding Wichman,Gill,Davis,Perkins
01800 motion/differencing
01900 motion stereo
02000 representation
02100 displays and geomed
02200 description of curved objects
02300 outdoor scenes texture, Ruzena and Yoram
02400 Grape
02500
02600 ARM HARDWARE
02700 Rancho arm
02800 controller, pulse width
02900 hydraulic arm
03000 Scheinman arm
03100 tachs
03200 tools
03300 touch and force
03400 two hands
03500 turntable
03600
03700 ARM SYSTEMS
03800 computer servo
03900 Pieper-kinematics and collision avoidance
04000 Kahn-dynamics, bang-bang servo
04100 block manipulation (Paul)
04200 hand language-move,wave
04300 Newtonain servo dynamics and trajectory calculation
04400 adaptive control with force and touch
04500 two hands
04600 assembly task
04700 high performance arm control (pre-computing trajectories)
04800
04900 SYSTEM SOFTWARE
05000 hand/eye system
05100 SAIL
05200 hand/eye library
05300
05400
05500
05600 DEMONSTRATIONS
05700 water pump
05800 instant insanity
05900 screwing and cranking
06000 putting blocks in holes
06100
06200
06300 Breaking arm control into servo and planning elements,
06400 and by precomputing trajectories, it is possible to have
06500 intelligent choice of trajectories and still have a small
06600 system which runs on a minicomputer-the mini and maxi systems.
00100 The project has made several solid accomplishments:
00200 manipulation capabilities which have enabled a demonstration of
00300 automated assembly of a water pump; a representation for the shape of
00400 complex objects, laser ranging apparatus, and programs which form
00500 symbolic descriptions of complex objects such as a doll or toy horse;
00600 initial achievement in labelling sky, road and trees in outdoor
00700 scenes, using a world model.
00800
00900 We have now focussed a major effort on robotics in industrial
01000 automation. That focus unites work on strategies for assembly,
01100 perceptual strategies, representation of shape and modelling of
01200 objects, visual feedback and manipulation. We are now working on a
01300 sequence of sharply defined tasks and abilities, and are constructing
01400 a system which incorporates these abilities and requires
01500 them to work together.
01600
01700 Recent progress has depended on previous system building. The
01800 achievement of one year in manipulation research followed three years
01900 of design and construction of hardware, and programming adequate
02000 basic arm control and planning software. Even that effort depended
02100 upon the experience of programming the Rancho de Los Amigos
02200 prosthetic arm, and building a hydraulic arm.
02300
00600
00700
00800
00900
01000 RESEARCH IN MANIPULATION
01005
01010
01015
01100 We initially acquired and interfaced a prosthetic arm from Rancho de
01105 los Amigos hospital. Although the device was mechanically
01110 inadequate, even after considerable attempts at improvements, the
01115 software experience was valuable. A program was written to provide
01120 point to point control for arm movements. Computer servo was used
01125 from the beginning and has proved much more versatile than analog
01130 servo for control of the new arm. A great deal of unnecessary work
01135 went into making up for deficiencies of the hardware, in order to
01140 carry out demonstrations of system capabilities.
01145
01150 In order to move through crowded workspaces, a program was written to
01155 avoid obstacles while carrying out arm movements [Pieper]. That program was
01160 general, but it was slow, since it used a local and not very smart
01165 search technique which inched its way around obstacles. It is
01170 important to develop a fast program for collision avoidance.
01175
01180 A hydraulic arm was designed and built according to design criteria
01185 of speed and strength. Arm control software was converted to this
01190 arm and another type of servo was developed [Kahn], minimal time servo, ie
01195 bang-bang servo. The effect was impressive but not useful. The arm
01200 was found unwieldy for software development; that experience made
01205 clear some design criteria for a new arm.
01210
01215 The next arm was designed with software in mind [Scheinman]. The arm was
01220 completed in December 1970, and has proved a good research
01225 manipulator; several other groups have made copies. A smaller
01230 version of the arm is under construction and promises to become a
01235 laboratory standard, particularly since its cost is approximately
01240 $4000 each in quantities of two.
01245
01250 Arm control software for the new arm was developed concurrently, and
01255 a few months after the hardware was in use, the software was
01260 operational. The software was split into a small arm control servo
01265 program which ran in real time mode on our PDP-6 computer, and a
01270 trajectory planning program [Paul] written in a higher level language, SAIL.
01275 This split has proved to be very useful, in ways which we discuss
01280 later.
01285
01290 The arm servo software contained several new features: a) feedforward
01295 from a Newtonian dynamic model of the arm, including gravity and
01300 inertial forces; b) feedback as a critically damped harmonic
01305 oscillator including velocity information from tachs; c) trajectory
01310 modification facility in the servo program, which allows considerable
01315 changes from planned trajectories to accomodate contingency
01320 conditions. Compare this control mechanism with the usual analog
01325 servo; the kinematic model and computer servo allow changes of
01330 several orders of magnitude in the equivalent servo constants, to
01335 account for variations in gravity loads and inertial effects.
01340
01345 The arm was designed so that solution for joint angles from
01350 position/orientation is simple and rapid. Its geometry is the same
01355 as the Unimate. With a change of solution, the techniques apply
01360 to a wide range of arms; thus our work has significance for
01365 industrial and other robotics applications.
01370
01375 The MOVE_INSTANCE capability [Paul] shows a simple form of automating some
01380 manipulation procedures. The routine chooses a best grasping and
01385 departure for a class of known objects. Models of these objects are
01390 stored in order to choose all possible grasping positions-parallel
01395 faces, a face and a parallel edge, etc. The full range of possible
01400 departure and approach angles is investigated and a solution chosen,
01405 if possible, which allows manipulation in a single motion. Otherwise,
01410 a solution is chosen which uses an intermediate position to regrasp
01415 the object. Thus, this facility provided a solution to grasping
01420 general polyhedra in arbitrary position and orientation, provided we
01425 had a model of the object.
01430
01435 Arm planning is based on making complete motions, eg picking up an
01440 object and putting it down. If we pick up an object arbitrarily,
01445 without thought for putting it down later, we may not be able to put
01450 it down as desired and may need to grasp it again. Complete
01455 trajectories are pieced together from various segments,eg grasp,
01460 departure, mid-segment, approach, release. Trajectories are
01465 specified by the user in an interpretive hand language (HAL) in terms
01470 of macros at the level of inserting a screw. Endpoint positions and
01475 orientations are often specified by positioning the arm itself in the
01480 proper position and recording joint angles, a form of "learning by
01485 doing". The language provides facilities for control using touch and
01490 force sensing.
01495
01500 The project is unique in the level of accomplishment in computer
01505 controlled autonomous manipulation. Still other advances are close
01510 at hand. A second arm is about to be operational, and we will be
01515 developing two hand cooperation. For industrial applications this
01520 seems essential, since many assembly operations could be done by a
01525 blind man, but not with one hand.
01530
01535 INDUSTRIAL AUTOMATION
01540
01545 Our first major task was assembly of an automobile water pump. A
01550 film which shows the process in detail is available for distribution.
01555 We describe the task in some detail to show the level of programming
01560 the system and the level of ability of the programmable device. The
01565 pump parts include pump base, cover, gasket and screws. We have
01570 chosen a plausible industrial environment with tools in fixed places,
01575 screws in a feeder, and pump body and cover on a pallet. The pump
01580 body is mounted on a plate, which can be placed anywhere on the
01585 table, since it is located by vision. Then it is moved to a standard
01590 position determined by stops. Pins are inserted into screw holes in
01595 the pump body to guide alignment of gasket and cover; if necessary
01600 the hand searches to seat the pins. The gasket is placed over the
01605 guide pins and visually inspected for correct placement. The cover
01610 is expected to be within about a quarter of an inch of its fixed
01615 place on the pallet. After locating the cover by touch, the hand
01620 places the cover over the guide pins. The hand then picks up a hex
01625 head power screwdriver, picks up a screw from the feeder and inserts
01630 the screw; if necessary, the hand searches to seat the screw. A
01635 second screw is inserted. The hand then removes the two pins and
01640 inserts four more screws. Finally, it tests that the pump impeller
01645 turns freely.
01650
01655 Three forms of feedback are used, visual, tactile, and force. The
01660 visual feedback is provided by strictly special purpose programs
01665 which have no general interest. We plan to generalize visual feedback
01670 capabilities and include them in a system like that used to program
01675 the rest of the task. The manipulation parts of the assembly were
01680 programmed in the Hand Language, HAL. The actual program follows:
01685 BEGIN PUMP
01690 ALIGN ;COMMENT ALIGN PUMP BASE AT STOPS
01695 PIN P1 H1 ;COMMENT PUT PIN P1 AT HOLE H1
01700 PIN P2 H2 ;COMMENT PUT PIN P2 AT HOLE H2
01705 GASKET
01710 TOP
01715 SCREW1 ;COMMENT PUT IN FIRST TWO SCREWS
01720 UNPIN H1 P1 H1A ;COMMENT REMOVE PIN P1 FROM HOLE H1
01725 UNPIN H2 P2 H2A ;COMMENT REMOVE PIN P2 FROM HOLE H2
01730 SCREW2 ;COMMENT INSERT LAST FOUR SCREWS
01735 TEST
01740 END
01745
01750 Each of the commands is a macro, an example of which is defined here.
01755 What follows is a Hand Language program to insert a pin in a hole.
01760 The position of the hand to pick-up the pin is refered to as P. This
01765 position is defined by moving the hand to the location of the pin and
01770 typing "HERE P"; the program then reads the current position of the
01775 hand and stores it in P ("learning by doing"). Similarly the
01780 position just above the hole where the insertion is to begin is
01785 defined by "HERE T". This is done with the pin in the hand.
01790 DEFINE PIN
01795 MOVE P ;GO TO THE PIN
01800 CLOSE 0.1 ;PICK UP PIN
01805 MOVE T ;GO TO THE HOLE
01810 SEARCH .07 ;SET SEARCH INCREMENT
01815 L1: MOVE T ;GO TO THE HOLE
01820 STOP [0 0 -50] ;SET UP STOP ON FORCE CONDITION
01825 CHANGE [0 0 -1] 0.6 ;TRY TO GO DOWN WITHOUT RESISTANCE
01830 SKIPE 23 ;SKIP IF NO FORCE ENCOUNTERED
01835 AOJ L1 ;ADD SEARCH INCREMENT AND JUMP
01840 STOP [0 0 -60] ;SET UP STOP ON FORCE CONDITION
01845 CHANGE [0 0 -1] 0.7 ;SHOULD MEET SOME RESISTANCE
01850 SKIPN 23 ;SKIP IF FORCE ENCOUNTERED
01855 AOJ L1 ;ADD SEARCH INCREMENT AND JUMP
01860 SAVE H ;REMEMBER WHERE HOLE ACTUALLY IS
01865 OPEN .5 ;RELEASE PIN
01870 CLOSE -.1 ;CHECK THAT IT IS STILL THERE
01875 OPEN 1 ;RELEASE AGAIN
01877 The pin should go into the hole without resistance, then encounter
01882 resistance. If it does not encounter resistance at the proper
01887 height, then the pin is off the pump body and the search resumes.
01895
01900 The task was performed in a general purpose hand language with a
01905 control program which could be readily adapted to other manipulators.
01910 Thus the system is more than a special purpose demonstration. It is
01915 of utility as the first level of programming assembly devices. If
01920 programmable assembly devices are to have wide use in batch and low
01925 volume production, their programming must be made simple enough to be
01930 economical.
01935
01940 We separate the planning and execution of arm motions; this allows a
01945 separation of systems into a mini system for execution and a maxi
01950 system for planning. The mini system is a small configuration
01955 minicomputer-based assembly station. The maxi system would reside in
01960 a factory central computer which handles scheduling of resources,
01965 design, communication, routing of parts, etc. The maxi system could
01970 take advantage of design information in the central system, and large
01975 file system, graphics and problem-solving languages. Its use is
01980 shared among many machines since reprogramming is done at intervals,
01985 only when tasks are changed. The mini system is low cost, yet its
01990 behavior can be pre-planned and optimized by the maxi system,
01995 utilizing intelligent and efficient planning.
02000
02005 There are many reasons for believing that the level of manipulation
02010 which we have demonstrated, and some simple vision capability, have
02015 important industrial applications. There are a class of tasks which
02020 can only be done by machines, not humans, eg reactor assembly and
02025 maintenance. Occupation hazards legislation now requires that people
02030 not operate punch presses and other machines with great sound and
02035 injury hazards. Fixed automation is limited to very high volume
02040 production, ie over one million units. For batch production and low
02045 volume production, it is a case of automating processes which are not
02050 otherwise automatable. Industrial robots already have some market (a
02055 few million dollars per year) and we can foresee that upgrading them
02060 with sensors which add little to cost can have great impact on their
02065 utility. Our own designs give us some feeling for costs so that we
02070 can see that for small scale assembly, system costs of $10k for two
02075 arms, touch and force sensors, and a minicomputer. The falling cost
02080 of computation is an important factor. Finally, the benefits for
02085 product quality and design techniques are considerable. We have made
02090 some of these arguments in detail in a proposal for support of our
02095 industrial automation effort and they will be only briefly
02100 summarized below.
02105
02110 We think that the robotics capabilities and the cost factors
02115 constitute a "technology push" which will move designers to
02120 incorporate such devices. Rough cost factors for such a general
02125 assembly device in quantities of 1000 are: two small Scheinman arms
02130 $1000 each including hand, touch and force sensing $800, arm drivers
02135 and interface $1000, small computer with 8k memory $4500, total
02140 $8300. We assume that the price is twice the cost, or about $20,000.
02145 Unimation now projects labor costs at $22000-$24000 per year averaged
02150 over the next ten years, and assumes a payoff over 2 years for an
02155 acceptable cost of $46,000.
02160
02165 Two conclusions appear from industrial representatives at various
02170 workshops: automation should be programmable; automation should be
02175 incremental. We contend that incremental incorporation of
02180 programmable assembly devices requires a sophistication of the
02185 assembly device which requires further directed research, but that it
02190 is within reach.
02195
02200 The improved quality of automated processes cuts costs of repair and
02205 warranty, and decreases inspection costs. There are important design
02210 advantages in programmable automation, since much smaller design
02215 costs are required for small changes or for small lot production.
02220 Briefly summarized, some advantages are: economies of scale in
02225 hardware quality and cost; economies of intellectual scale
02230 (commonality of design); longer life for tools; more flexibility in
02235 design and modification; more efficient scheduling and better
02240 utilization; less capital tied up in stockpiling.
02245
02250 A primary research effort is required for programming assembly
02255 robots. Although robots will be useful even if programming is
02260 moderately painful, their full impact will come when changing jobs is
02265 simple. We are planning to attack that problem by building an
02270 interactive system combining an APT-like language, graphics
02275 techniques for displaying 3-d objects, with vision and manipulation
02280 primitives. "Learning by doing" is already available, and we will
02285 combine that with the symbolic abilities just indicated. An
02290 attractive possibility is that of providing the designer with a
02295 simulation system which will aid "design for automation" by giving
02300 feedback on what is achievable by the programmable assembly devices.
02305 Simultaneously, a program for the assembly device would come from the
02310 design process.
00100 VISION RESEARCH
00200
00300
00400
00500 During the past two years our vision effort has shifted from scenes
00600 of blocks to outdoor scenes and scenes of complex objects such as
00700 dolls or toy horses. In both cases, interpretation has made use of
00800 world models.
00900
01000 A crucial part of our work with complex objects is our development of
01100 suitable representation of shape. This is an area closely connected
01200 with industrial applications of research, since representation of
01300 shape is important in programming of robots, design, display, visual
01400 feedback, assembly, and symbolic description for recognition. A
01500 class of representations of shape has been evolved [Binford 1971], and applied to
01600 symbolic description of shapes of toys and tools [Agin,Nevatia]. The
01700 representation depends on a part/whole description of objects in
01800 terms of parts which may themselves be composed of parts. The
01900 success of any part/whole representation depends on the utility of
02000 the primitive parts; within the representation, dominant primitives
02100 are "generalized cones", originating from a formalization called
02200 "generalized translational invariance" [Binford 1971]. These primitives are
02300 locally defined by an arbitrary cross section and a space curve
02400 called the axis, along which the cross sections are translated normal
02500 to the axis.
02600
02700 Local pieces of primitives are strung together continuously to
02800 generate complete primitives like a screw, doughnut, snake, etc. A
02900 complete primitive is a cross section which varies continuously along
03000 a continuous space curve called the axis, always normal to the axis.
03100 A rich set of primitive shapes can be generated from simple local
03200 models, and the primitives can be combined in a wide variety of ways.
03300 Complete descriptions are graphs of structured parts. The local
03400 models provide an appropriate level of semantic guide to control
03500 local description processes.
03600
03700 We have developed laser depth ranging hardware which has been
03800 operative since January 1971. The device is very simple and can be
03900 replicated now for less than $1000, assuming that a suitably
04000 sensitive camera tube such as a silicon vidicon or solid state sensor
04100 is available. From that experimental data, we have obtained complete
04200 descriptions of a doll, a toy horse, a glove, etc, in terms of
04300 part/whole descriptions in the representation just described. The
04400 same techniques could be used for monocular images, with considerable
04500 benefit, in spite of the added difficulty of using only monocular
04600 information. We are now writing programs which match these graph
04700 descriptions for recognition.
04800
06400 We are applying this work to visual feedback for assembly. Our basic
06500 approach to visual feedback is to take advantage of the fact that we
06600 already know a great deal about a scene in which we are doing
06700 assembly. We can use that knowledge to predict the appearance of
06800 relevant parts for aligning surfaces, in scenes which are more
06900 complicated than could be understood by our programs without the
07000 knowledge. We are building a visual feedback ability which depends
07100 on a) representing objects within the representation just described,
07200 b) predicting desired curves by converting the object representation
07300 to the usual polyhedral representation as input to a computer
07400 graphics package, and c) matching the predicted curve with edge
07500 points in the image. The first two steps are completed, the final
07600 step is in progress. Visual feedback will thus be model-driven, and
07700 by specifying the mating surfaces,we will be able to generate a
07800 program which aligns the surfaces as desired. This degree of
07900 automating of visual feedback is of great value in programming robots
08000 for assembly. Programming thus becomes a process of describing the
08100 parts to be mated to an interactive system. Of particular interest is
08200 the case of repetitive operations, for which the part description,
08300 transformation of representation and graphics can be done on a
08400 central time-sharing system, while the matching with edge data can be
08500 done on a mincomputer in the assembly module.
08600
08700 Several previous experiments have laid the groundwork for our present
08800 attack on the problem. Wichman [Wichman] executed the first robotics visual
08900 feedback system. It was deficient in several ways: only the outer
09000 edges of the blocks were observed; thus the hand had to be removed
09100 from view, and the technique was limited in its domain of objects.
09200 Gill [Gill] then improved these aspects by recognizing hand marks and
09300 internal edges of blocks. The system was model driven in that
09400 specifying the projected appearance of a corner in a small window
09500 programmed the system for a new task. But the system was limited to
09600 tasks with polyhedra, eg stacking blocks and inserting blocks into
09700 holes. In addition, a coordination of calibration of hand and eye
09800 coordinate systems was used, by tracking the hand through several
09900 positions. A stereo block alignment module was also programmed.
10000 Perkins [Perkins] made an improved corner finder which incorporated the
10100 Hueckel edge operator and identifcation of straight lines by looking
10200 for clusters in a line parameter space.
10205 Because the program uses
10300 models of expected images and can find edges with low contrast, the
10305 system works well in the block world.
10400 We are
10500 thus pushing forward into feedback with curved objects as described
10600 above.
10700
10800 The work on visual feedback depends on display techniques which have
10900 been developed here and elsewhere. An interactive program GEOMED [Baumgart]
11000 was developed here by Baumgart to allow description of objects by building them
11100 up from a set of geometric primitives. The usually tedious task of
11200 input of descriptions of complex objects is much simplified. For our
11300 purposes, a symbolic line drawing output is necessary; a fast hidden
11400 line elimination program with symbolic line output structure has been
11500 written [Baumgart].
11600
11700 Working with outdoor scenes introduces new difficulties: surfaces are
11800 textured, line finders etc., have been specialized to scenes of
11900 polyhedra. We have made substantial progress by incorporating new
12000 visual modules such as color region finders with a world model. The
12100 first of these efforts [Bajcsy] included a color region finder aad Fourier
12200 descriptors of texture. Textures were described by directionality,
12300 contrast, element size and spacing. These interpretations from the
12400 Fourier transform are useful but not always valid, and a discussion
12500 of the limitations of Fourier descriptors was included. Depth cues
12600 were obtained from the gradient of texture. The results of color and
12700 texture region growing were shown, and a simulation made of
12800 combining these various modes with a world model. An interesting
12900 conclusion was that three dimensional interpretations and cues were
13000 the most semantic help in scene interpretation.
13100
13200
13300 A second project with outdoor scenes has made considerable progress
13400 [Yakimovsky]. Yakimovsky has made a region-based system which sequentially
13500 merges regions based on semantics of familiar scenes, using
13600 two-dimensional image properties. The system has an intial stage
13700 which is very much like other region approaches, merging regions
13800 based on similarity of color and other crude descriptors except that
13900 it eliminates weakest boundaries first. The second stage introduces a
14000 world model and a means of estimating the best interpretation of the
14100 scene in terms of that model. Interpretation is evaluated by a
14200 "first-order statistical" semantics. An overall linear evaluation
14300 function is made; each region is evaluated not only for its
14400 consistency with an assumed label from the model, but to include
14500 "first-order" consistency of interpretation, according to its
14600 boundary properties with neighbors. Upper and lower limits of
14700 interpretation consistency are evaluated, and a tree formed of merge
14800 choices. The tree is eventually backed up to the best
14900 interpretation. The semantic evaluation provides much better regions
15000 than the same system without the semantics. The system is able to
15100 interactively acquire its statistics of occurrence of region and
15200 boundary properties from sample pictures, what might be called a low
15300 level of learning. It has been demonstrated on road scenes, for
15400 which rather good segmentations and labellings have been achieved.An
15500 application to heart angiograms was also made.
15600
15700 In human and animal peception, stereo and motion perception of depth
15800 are important. Several of these mechanisms have been programmed.
15900 Nevatia evaluated motion parallax of a moving observer for scenes of
16000 rocks. That program tracked by correlation subsequent images in a
16100 series of images with small angle between images. The technique
16200 allows large baselines for triangulation, and thus is suitable for
16300 depth perception at large distances.
16500 Another approach to stereo has been carried out on outdoor scenes [Hannah
16550 unpublished].
16600 Several aspects of stereo have been considered: a) stereo
16700 correspondence in images without calibration. b) establishing
16800 calibration from stereo correspondences, to enable self-calibration
16900 of remotely operated systems; c) stereo correspondence in images with
17000 a well-established relative calibration. A sorting technique for
17100 color and other features saved considerable computation. With
17200 current hardware, brute force techniques are too costly in computing
17300 time for practical utility. Effort has been to choose techniques
17400 which gave considerable gain over brute force techniques and to
17500 evaluate techniques which might become useful with foreseeable
17600 increases in computing power.
17700
17800 A considerable effort has gone into the complex of problems which are
17900 raised in seeking a system which is able to do not just a single
18000 task, but makes it simple to perform many tasks. We have in mind a
18100 vision system for different tasks or environments, or a programming
18200 system to program assembly robots. These problems have led us into
18300 work on strategies, representation, and system design. The system
18400 design has been concerned with introducing and incorporating modern
18500 language features, and communication among cooperating processes, in
18600 spite of limitations of the current time-sharing system. The system
18700 is organized about co-operating modules programmed more or less
18800 independently. Modules have agreed-upon communication through a
18900 global data base and message handler. Considerable standardization
19000 has been achieved, so that several users easily work with arm and eye
19100 modules. Recently, we have begun work on systematizing the
19200 bookkeeping of combining vision programs into a system by defining a
19300 set of special vision language primitives within our higher level
19400 language SAIL. These are ways of simplifying the human interface,
19500 but also simplifying the interface with strategy programs.
19600 Eventually, they will lead to an APT-like language for assembly
19700 automation.
19800
19900 We have developed various modules for that system. An edge operator
20000 [Hueckel] gives a good indication based on local brighness evidence of
20100 whether or not there is an edge near the center of a neighborhood. If
20200 there is an edge, its position and location are relatively well
20300 determined. Differencing techniques have been used to find changes
20400 in scenes. Color region growing techniques have been used.
20500 Accomodation of camera parameters to optimize image quality for each
20600 task has been extensively used. An edge verifier has been used which
20700 is intended to verify or reject hypotheses from an edge proposal
20800 module from one of the body interpretation programs. A focussing
20900 module allows automatic focussing. It could potentially be used in
21000 depth measurement, but its accuracy is much worse than other depth
21100 measurement techniques. Color identification modules have been
21200 written; the latest incorporates the Retinex model of Land to achieve
21300 a certain color constancy, independent of the variation of
21400 illuminance spectrum from scene to scene (sunlight, incandescent,
21500 xenon arc, flourescent) or within a scene (reflections from colored
21600 objects). Several corner finders {Gill,Perkins] have been programmed
21700 for use in visual feedback with blocks. Calibration modules allow
21800 maintaining a system in a well-calibrated state to maintain
21900 reliability, and increase reliability by self-calibration.
22000
22100 Several programs have been written to understand scenes of blocks
22200 given line drawings. An early version recognized only outlines of
22300 isolated objects. A later program, COMPLEX [Falk], arrived at segmentations
22400 into objects by techniques which were extension of Guzman's but using
22500 lines rather than regions. THis allowed more effectively dealing
22600 with missing and extraneous edges. The system used very limited
22700 prototypes of objects, using size in an important and restrictive way
22800 to identify objects and their spatial relations. Missing edges were
22900 hypothesized for a line verifier program to confirm or reject. Still
23000 another model-based program [Grape] used models of a parallelipiped and a wedge
23100 to perform the segmentation into objects corresponding to models. It
23200 is able to handle a variety of missing and extraneous edges. The
23300 thrust of all these efforts is the use of models for perception.
23400
23500